/*
 * author      : 吴中勤 
 * date        : 2018/8/16
 * description : 会员信息
 */

package com.deepexi.adapter.facade.moby.request;

import com.deepexi.adapter.common.BaseDto;
import com.deepexi.adapter.facade.moby.MobyConst;
import com.google.gson.annotations.SerializedName;


public class MobyOrderLine extends BaseDto {

    /** 这个字段从订单里面取, 不从订单行里面取 */
    private String tradeOrderId;

    /** 行编号 */
    private String id;

    /** 商品物料编码, 保养包的物料编号, 其含义是 包编号*/
    private String materialCode;

    /** 商品类别 */
    private String productType;

    /** 数量 */
    private String quantity;

    /** 单价 */
    private String priceMoney;

    /** 服务费 */
    private String servicePrice;

    /** 是否已经确认 yes/no */
    private String confirmedStatus;

    /** 车辆内部编码, 如果有效则表明订单已经分车 */
    private String vehicleCode;

    /** 车型销售代码 */
    private String vehicleModelCode;

    /** yes/no */
    private String autoPurchase;

    /** 仓库地址 */
    @SerializedName("lgort")
    private String warehouseCode;

    /** 操作人, 比如贷款完成上传批贷函的人，保险确认对应的 */
    private String operatorId;

    /** 车辆行才有的数据: 首付额度 */
    private String downPayment;

    /** 车辆行才有的数据: 贷款额度 */
    private String loanAmount;

    /** 车辆行才有的数据: 购置税金额 */
    @SerializedName("purchaseTax")
    private String purchaseTaxMoney;

    /** 车辆行才有的数据: 购置税物料编码 */
    private String purchaseTaxMaterialCode;

    /** 车辆行才有的数据: 购置税订单行id */
    private String purchaseTaxLineId;

    /** 包名描述, 可以作为行项目描述 */
    @SerializedName("bundleName")
    private String description;

    /** 包的skuId, 目前在保养包中使用  */
    @SerializedName("skuId")
    private String bundleSkuId;

    /******************
     * 以下三个字段, 是在对应物料号时, 方便人工校正
     * 目前仅在 Material2ItCatFactory.java中使用,
     * 谨慎只用这三个字段
     * *************/
    /** 行名称 */
    @SerializedName("itemName")
    private String itemName;

    /** 行属性名 */
    @SerializedName("propNames")
    private String propNames;

    /** 行属性值 */
    @SerializedName("propValues")
    private String propValues;

    /**************** 以下是 解析生成的字段, 非输入 *****************/

    /**
     * com.deepexi.adapter.converter.sap.SapMapConst
     * 同步类型 默认= synced
     */
    private String syncType;


    public boolean isConfirmed() {
        return MobyConst.CONFIRMED_YES.equals(this.confirmedStatus);
    }

    // ============= setter & getter =============

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getPropNames() {
        return propNames;
    }

    public void setPropNames(String propNames) {
        this.propNames = propNames;
    }

    public String getPropValues() {
        return propValues;
    }

    public void setPropValues(String propValues) {
        this.propValues = propValues;
    }

    public String getBundleSkuId() {
        return bundleSkuId;
    }

    public void setBundleSkuId(String bundleSkuId) {
        this.bundleSkuId = bundleSkuId;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getPurchaseTaxMoney() {
        return purchaseTaxMoney;
    }

    public void setPurchaseTaxMoney(String purchaseTaxMoney) {
        this.purchaseTaxMoney = purchaseTaxMoney;
    }

    public String getPurchaseTaxMaterialCode() {
        return purchaseTaxMaterialCode;
    }

    public void setPurchaseTaxMaterialCode(String purchaseTaxMaterialCode) {
        this.purchaseTaxMaterialCode = purchaseTaxMaterialCode;
    }

    public String getPurchaseTaxLineId() {
        return purchaseTaxLineId;
    }

    public void setPurchaseTaxLineId(String purchaseTaxLineId) {
        this.purchaseTaxLineId = purchaseTaxLineId;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public String getVehicleModelCode() {
        return vehicleModelCode;
    }

    public void setVehicleModelCode(String vehicleModelCode) {
        this.vehicleModelCode = vehicleModelCode;
    }

    @Deprecated
    public String getTradeOrderId() {
        return tradeOrderId;
    }

    public void setTradeOrderId(String tradeOrderId) {
        this.tradeOrderId = tradeOrderId;
    }

    public String getDownPayment() {
        return downPayment;
    }

    public void setDownPayment(String downPayment) {
        this.downPayment = downPayment;
    }

    public String getLoanAmount() {
        return loanAmount;
    }

    public void setLoanAmount(String loanAmount) {
        this.loanAmount = loanAmount;
    }

    public String getVehicleCode() {
        return vehicleCode;
    }

    public void setVehicleCode(String vehicleCode) {
        this.vehicleCode = vehicleCode;
    }

    public String getAutoPurchase() {
        return autoPurchase;
    }

    public void setAutoPurchase(String autoPurchase) {
        this.autoPurchase = autoPurchase;
    }

    public String getServicePrice() {
        return servicePrice;
    }

    public void setServicePrice(String servicePrice) {
        this.servicePrice = servicePrice;
    }

    public String getConfirmedStatus() {
        return confirmedStatus;
    }

    public void setConfirmedStatus(String confirmedStatus) {
        this.confirmedStatus = confirmedStatus;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getMaterialCode() {
        return materialCode;
    }

    public void setMaterialCode(String materialCode) {
        this.materialCode = materialCode;
    }

    public String getQuantity() {
        return quantity;
    }

    public void setQuantity(String quantity) {
        this.quantity = quantity;
    }

    public String getPriceMoney() {
        return priceMoney;
    }

    public void setPriceMoney(String priceMoney) {
        this.priceMoney = priceMoney;
    }

    public String getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    public void setSyncType(String syncType) {
        this.syncType = syncType;
    }

    public String getSyncType() {
        return syncType;
    }
}
